package com.demo.security.core;

import java.util.List;
import java.util.Map;
import org.springframework.security.access.ConfigAttribute;

import com.demo.security.access.model.SecurityResource;

/**
 * 方法元数据资源分离器<br>
 * 作用是根据传入资源分析成资源(方法&URL)-安全配置属性Map
 * 
 * @author ryuu.kk
 */
public interface SecurityMetadataSourceResolver {

	/**
	 * 基于Spring的EL表达式的解析器模式
	 */
	String METADATA_SPEL = "SpEL";
	
	/**
	 * 基于角色的分解器模式
	 */
	String METADATA_ROLE = "ROLE";
	
	/**
	 * 提供方法资源配置
	 * 找到方法对应安全配置属性
	 * @param methodRescs 方法资源模型
	 * @return 方法-安全配置属性
	 */
	Map<String, List<ConfigAttribute>> resolver(List<SecurityResource> securityRescs);
}
